package com.atwork.wuhua;


import com.atwork.wuhua.base.BaseEntity;
import com.atwork.wuhua.base.SystemBean;
import com.atwork.wuhua.bean.BannerBean;
import com.atwork.wuhua.bean.EditInfoBean;
import com.atwork.wuhua.bean.EvaluateBean;
import com.atwork.wuhua.bean.EvaluateDetailBean;
import com.atwork.wuhua.bean.FieldDetailListBean;
import com.atwork.wuhua.bean.FieldDetialBean;
import com.atwork.wuhua.bean.HomePageBean;
import com.atwork.wuhua.bean.LaunchBean;
import com.atwork.wuhua.bean.MyWarBean;
import com.atwork.wuhua.bean.SubDetailBean;
import com.atwork.wuhua.bean.SubDetailNumBean;
import com.atwork.wuhua.bean.TypeSelectRegionBean;
import com.atwork.wuhua.bean.TypesBean;
import com.atwork.wuhua.bean.UserBean;
import com.atwork.wuhua.bean.VerifyBean;
import com.atwork.wuhua.mvp.model.EditInfoModel;

import io.reactivex.Observable;
import retrofit2.http.Field;
import retrofit2.http.FormUrlEncoded;
import retrofit2.http.GET;
import retrofit2.http.HTTP;
import retrofit2.http.Header;
import retrofit2.http.POST;
import retrofit2.http.PUT;
import retrofit2.http.Path;
import retrofit2.http.Query;

public interface APIFunction {


    @GET(URLConfig.COMMON_VERIFY)
    Observable<BaseEntity<VerifyBean>> getVerify(@Query("secret") String secret);


    @GET(URLConfig.BANNER_LIST)
    Observable<BaseEntity<BannerBean>> getBanner(@Query("secret") String secret);

    @GET(URLConfig.SITE_TYPES)
    Observable<BaseEntity<TypesBean>> getTypes(@Query("secret") String secret);

    @GET(URLConfig.SITE_LISTS)
    Observable<BaseEntity<HomePageBean>> getLists(@Query("secret") String secret);

    @GET(URLConfig.SITE_DETAIL)
    Observable<BaseEntity<FieldDetialBean>> getFieldDetail(@Query("secret") String secret);


    @GET(URLConfig.SITE_FIELD)
    Observable<BaseEntity<FieldDetailListBean>> getFieldDetailList(@Query("secret") String secret);

    @GET(URLConfig.SITE_LABELS)
    Observable<BaseEntity<EvaluateBean>> getLabels(@Query("secret") String secret);

    @GET(URLConfig.SYSTEM_SYSTEM)
    Observable<BaseEntity<SystemBean>> getSystem(@Query("secret") String secret);


    @GET(URLConfig.BESPEAK_LIST)
    Observable<BaseEntity<LaunchBean>> getLaunchList(@Query("secret") String secret);

    @GET(URLConfig.COMMON_LOCATION)
    Observable<BaseEntity<TypeSelectRegionBean>> getLacition(@Query("secret") String secret);

    //
//    @FormUrlEncoded
//    @POST(URLConfig.MEMBER_REGISTER)
//    Observable<BaseEntity<RegisterBean>> postRegister(@Field("secret") String secret);
//
//    @FormUrlEncoded
//    @POST(URLConfig.MEMBER_RESETPWD)
//    Observable<BaseEntity<ReviseBean>> putResetPwd(@Field("secret") String secret);
//
    @FormUrlEncoded
    @POST(URLConfig.MEMBER_LOGIN)
    Observable<BaseEntity<UserBean>> postLogin(@Field("secret") String secret);

    //
    @GET(URLConfig.MEMBER_INFO)
    Observable<BaseEntity<UserBean>> postInfo(@Query("secret") String secret);

    @FormUrlEncoded
    @POST(URLConfig.MEMBER_LOGOUT)
    Observable<BaseEntity> postLogout(@Header("Authorization") String auth, @Field("secret") String secret);

    @FormUrlEncoded
    @POST(URLConfig.SITE_BESPEAK)
    Observable<BaseEntity> postBespeak(@Header("Authorization") String auth, @Field("secret") String secret);


    @GET(URLConfig.MEMBER_RESERVATION)
    Observable<BaseEntity<MyWarBean>> getReservation(@Header("Authorization") String auth, @Query("secret") String secret);

    @FormUrlEncoded
    @POST(URLConfig.SITE_EVALUATE)
    Observable<BaseEntity> postEvaluate(@Header("Authorization") String auth, @Field("secret") String secret);

    @GET(URLConfig.SITE_EVALUATE_DETAIL)
    Observable<BaseEntity<EvaluateDetailBean>> getEvaluateDetail(@Header("Authorization") String auth, @Query("secret") String secret);

    @FormUrlEncoded
    @PUT(URLConfig.SITE_CANCEL)
    Observable<BaseEntity> putSiteCancel(@Header("Authorization") String auth, @Field("secret") String secret);


    @GET(URLConfig.BESPEAK_DETAIL)
    Observable<BaseEntity<SubDetailBean>> getSubDetail(@Header("Authorization") String auth, @Query("secret") String secret);

    @GET(URLConfig.BESPEAK_MEMBERS)
    Observable<BaseEntity<SubDetailNumBean>> getSubJoinNun(@Header("Authorization") String auth, @Query("secret") String secret);






    @FormUrlEncoded
    @POST(URLConfig.BESPEAK_JOIN)
    Observable<BaseEntity> postJoin(@Header("Authorization") String auth, @Field("secret") String secret);

    //
//    @FormUrlEncoded
//    @PUT(URLConfig.MEMBER_SETALIPAY)
//    Observable<BaseEntity<AlipayBean>> postSetalipay(@Header("Authorization") String auth, @Path("uuid") String uuid, @Field("secret") String secret);
//
//    @FormUrlEncoded
//    @PUT(URLConfig.MEMBER_EDITALIPAY)
//    Observable<BaseEntity<AlipayBean>> postEditalipay(@Header("Authorization") String auth, @Path("uuid") String uuid, @Field("secret") String secret);
//
//    @FormUrlEncoded
//    @PUT(URLConfig.MEMBER_OFFALIPAY)
//    Observable<BaseEntity<AlipayBean>> postClosealipay(@Header("Authorization") String auth, @Path("uuid") String uuid, @Field("secret") String secret);
//
    @FormUrlEncoded
    @PUT(URLConfig.MEMBER_EDITINFO)
    Observable<BaseEntity<EditInfoBean>> putEditInfo(@Header("Authorization") String auth, @Field("secret") String secret);
//
//    @GET(URLConfig.REGION_GET)
//    Observable<BaseEntity<LocationBean>> getMahine(@Query("secret") String secret);
//
//    @GET(URLConfig.COMMON_TOKEN)
//    Observable<BaseEntity<QiniuTokenBean>> getQiniuToken(@Header("Authorization") String auth, @Query("secret") String secret);
//
//    @GET(URLConfig.REGION_INFO)
//    Observable<BaseEntity<LocationInfoBean>> getLocationInfo(@Query("secret") String secret);
//
//    @GET(URLConfig.ORDER_LIST)
//    Observable<BaseEntity<OrderBean>> getOrderList(@Header("Authorization") String auth, @Query("secret") String secret);
//
//    @GET(URLConfig.ORDER_INFO)
//    Observable<BaseEntity<OrderDetailBean>> getOrderInfo(@Header("Authorization") String auth, @Query("secret") String secret);
//
//    @GET(URLConfig.ADVERTISEMENT_LIST)
//    Observable<BaseEntity<AdBean>> getAdList(@Header("Authorization") String auth, @Query("secret") String secret);
//
//    @GET(URLConfig.MONITOR_LIST)
//    Observable<BaseEntity<MonitorBean>> getMonitorList(@Header("Authorization") String auth, @Query("secret") String secret);
//
//    @FormUrlEncoded
//    @HTTP(method = "DELETE", path = URLConfig.ADVERTISEMENT_DELETE, hasBody = true)
//    Observable<BaseEntity<Object>> postAdDelete(@Header("Authorization") String auth, @Field("secret") String secret);
//
//    @GET(URLConfig.LAUNCH_ADD)
//    Observable<BaseEntity<LaunchAddBean>> getLaunchAdd(@Query("secret") String secret);
//
//    @GET(URLConfig.LAUNCH_ADD)
//    Observable<BaseEntity<LaunchAddBean>> getLaunchAdd(@Header("Authorization") String auth, @Query("secret") String secret);
//
//    @GET(URLConfig.LAUNCH_LIST)
//    Observable<BaseEntity<LaunchListBean>> getLaunchList(@Query("secret") String secret);
//
//    @GET(URLConfig.LAUNCH_LIST)
//    Observable<BaseEntity<LaunchListBean>> getLaunchList(@Header("Authorization") String auth, @Query("secret") String secret);
//
//    @FormUrlEncoded
//    @HTTP(method = "DELETE", path = URLConfig.LAUNCH_DELETE, hasBody = true)
//    Observable<BaseEntity<Object>> deleteLaunchDel(@Field("secret") String secret);
//
//    @GET(URLConfig.ORDER_ORDERLIST)
//    Observable<BaseEntity<SelectDateBean>> getOrderDataList(@Header("Authorization") String auth, @Query("secret") String secret);
//
//    @FormUrlEncoded
//    @POST(URLConfig.ORDER_CREATE)
//    Observable<BaseEntity<DeliveryPayBean>> postCreateOrder(@Header("Authorization") String auth, @Field("secret") String secret);
//
//    @GET(URLConfig.COUSTOMSER_COUSTOM)
//    Observable<BaseEntity<CoustomBean>> getCoustom(@Query("secret") String secret);
//
//    @GET(URLConfig.ANNOUNCE_ORDERS)
//    Observable<BaseEntity<InfoDetailBean>> getOrderNews(@Header("Authorization") String auth, @Query("secret") String secret);
//
//    @GET(URLConfig.ANNOUNCE_OFFICIAL)
//    Observable<BaseEntity<InfoDetailBean>> getOfficialNews(@Query("secret") String secret);
//
//    @GET(URLConfig.UPDATED_CHECKVERSION)
//    Observable<BaseEntity<UpdataBean>> getcheckversion(@Query("secret") String secret);
//
//    @GET(URLConfig.ORDER_REVOKOR)
//    Observable<BaseEntity<Boolean>> getOrderRemoker(@Header("Authorization") String auth, @Query("secret") String secret);
//
//    @GET(URLConfig.COMMON_CAPTCHA)
//    Observable<BaseEntity<CaptChaBean>> getCaptcha(@Query("secret") String secret);
//
//    @FormUrlEncoded
//    @POST(URLConfig.COIN_RECHARGECOIN)
//    Observable<BaseEntity<RechargecoinBean>> postRechargecoin(@Header("Authorization") String auth, @Field("secret") String secret);
//
//    @GET(URLConfig.MEMBER_GETCOIN)
//    Observable<BaseEntity<CoinBean>> getCoin(@Header("Authorization") String auth, @Query("secret") String secret);
//
//
//    @GET(URLConfig.COIN_COINRECORD)
//    Observable<BaseEntity<TaobiBean>> getCoinCord(@Header("Authorization") String auth, @Query("secret") String secret);
//
//    @FormUrlEncoded
//    @PUT(URLConfig.MEMBER_ALIPAYNAME)
//    Observable<BaseEntity<BindAlipyBean>> putAlipayName(@Header("Authorization") String auth, @Path("uuid") String uuid, @Field("secret") String secret);
//
//    @FormUrlEncoded
//    @PUT(URLConfig.MEMBER_DELALIPAYNAME)
//    Observable<BaseEntity<UnBindAlipyBean>> putDelAlipayName(@Header("Authorization") String auth, @Path("uuid") String uuid, @Field("secret") String secret);
//
//    @FormUrlEncoded
//    @POST(URLConfig.COIN_WITHDRAWALCOIN)
//    Observable<BaseEntity<PutForWordCoinBean>> postPutForwordCoin(@Header("Authorization") String auth, @Field("secret") String secret);

}
